/**
* Copyright © 2018 深圳市巨鼎医疗设备有限公司
*/
package com.zl.websocket.service;

import java.util.Set;

import com.zl.websocket.entity.Message;

/**
 * 给前端发送消息的服务
 * 
 * @author Zhouych
 * @Date: 2018年6月27日 下午1:54:29
 * @since JDK 1.8
 */
public interface MessageService {

	/**
	 * 给所有人发送消息
	 * 
	 * @param message
	 */
	void send(Message message);

	/**
	 * 给单个用户发消息
	 * 
	 * @param userId
	 * @param message
	 */
	void send(String userId, Message message);

	/**
	 * 给特定一批用户发消息
	 * 
	 * @param userIds
	 * @param message
	 */
	void send(Set<String> userIds, Message message);

	/**
	 * 建立连接时触发
	 * 
	 * @param id
	 */
	void onUserConnect(String userId);

	/**
	 * 断开连接时触发
	 * 
	 * @param id
	 */
	void onUserDisConnect(String userId);

	/**
	 * 发送失败回调
	 * 
	 * @param userId
	 * @param message
	 */
	void onSendFail(String userId, Message message);
}
